#ifndef DDEFECTINFO_H
#define DDEFECTINFO_H

#include <string>
#include <iostream>
#include <cstdio>

/*****************************************************************
 *
 *
 *
 *****************************************************************/
class DDefectInfo
{
public:
	DDefectInfo();
	DDefectInfo( const DDefectInfo& dInfo );
	DDefectInfo( std::string str );
	DDefectInfo( std::string stepID, int testNo, long ID, 
	             double size = -1.0, int stepOrder = -1, 
				 int lgKey = -1);
	
	~DDefectInfo();	
	inline void setTestNo( int testNo ){  m_testNo = testNo;  }			 
	inline int getTestNo() { return m_testNo; }	

	inline void setID( long ID ) { m_ID = ID; }	
	inline long getID() { return m_ID; }
	
	inline std::string getStepID() { return m_stepID; }
	inline void setStepID( std::string stepID ) { m_stepID = stepID; }
	
	inline double getSize() { return m_size; }
	inline void setSize( double size ) { m_size = size; }
	
	inline void setLgKey( int lgKey ) { m_lgKey = lgKey; }
	inline int getLgKey() { return m_lgKey; }
	
	inline void setStepOrder( int stepOrder ) { m_stepOrder = stepOrder; }
	inline int getStepOrder() { return m_stepOrder; }
	
	std::string toString();	
	friend std::ostream& operator << ( std::ostream& os, DDefectInfo& defInfo );	

private:	
	int m_testNo;
	std::string m_stepID;
	long m_ID;
	double m_size;
	int m_lgKey;
	int m_stepOrder;
};
#endif